[§] 1.1 Field of the Invention
The present invention concerns analyzing computer-based tasks to (i) define and infer tasks and end goals from usage data, (ii) cluster similar tasks together, (iii) determine probabilities that certain tasks will be performed, (iv) determine the different ways in which users go about completing a given task, (v) use models of clustered tasks and probabilities of clustered tasks to help computer users to perform such tasks more effectively and efficiently, and (vi) target marketing information to computer users based on a task being performed. The present invention also concerns providing a uniform semantic network for representing different types of objects (or information) in a uniform way.
[§] 1.2 Related Art
[§] 1.2.1 Task Performance
A task may be defined as a goal achieved by performing a sequence of steps. People often rely on computers to complete tasks. Different computer applications are tailored to help people perform different tasks. For example: a word processing application may be used to generate a letter, generate a food recipe card, or generate a table of contents for a paper; a spreadsheet application may be used to determine an accounts receivable value or determine a taxable income value; a drafting application may be used to generate an organizational chart, prepare a block diagram, or layout a floor plan for a new kitchen; a database or Internet browser application may be used to find crash test results for new cars, get a stock quote, plan an evening out with a diner and a movie, or find an employee's telephone extension.
Computer applications are designed based on predictions of how likely most users will want to perform certain tasks. Special provisions (e.g., toolbars, hierarchical menus, special keyboard keys, etc.) to assist the user in performing such tasks are provided based on assumptions made by the application designer(s). Thus, for example, in the context of a word processing application, a spell checking task may be designed to be easier to perform than a bibliography generating task because it is assumed that users will more likely want to perform a spell check task than a bibliography generation task. Similarly, a keyboard may be provided with an addition (“+”) key but not an integration (“∫”) key because it is assumed that it is more likely that users will want to include a “+” sign in a document than a “∫” sign in a document. In the context of the browsing contents of an Internet “site” or “website” (i.e., an Internet resource server), a topology of the Internet site may be designed based on expected usage of (e.g., requests for) various resources. Thus, for example, reviews of newly released movies may be easier to request (or navigate to) than reviews of older movies.
Assumptions about what tasks people want to perform and how people intuitively go about performing tasks are reflected in the design of computer applications, the topology of resource servers, such as Internet sites for example, and user interface methods (such as forms and frames) used in interactive applications and resource servers. Unfortunately, once designed, a computer application is relatively fixed. Similarly, the topology of most Internet sites is relatively static. Consequently, computer applications and Internet site topologies are typically only as good as the assumptions which underlay their design. Even if the design of computer application and Internet site topologies are based on well founded assumptions about what types of tasks users will likely want to perform and how they will go about performing such tasks, such assumptions may become stale as people want to perform different tasks.
Moreover, certain tasks will often span various to computer applications. For example, a task may be to generate an annual report. Generating such a report may involve entering text by means of a word processing application, determining financial figures with a spreadsheet application, and generating a block diagram using a drafting application. It is difficult for designers of individual applications to anticipate such inter-application tasks and design their applications accordingly.
In view of the foregoing problems with computer-based tools for performing various tasks, methods and apparatus for analyzing what computer users are doing—more specifically what tasks are being performed by users and how such tasks are being performed—are needed. Moreover, methods and apparatus are needed for using such task analysis to help computer users to effectively perform desired tasks.
[§] 1.2.2 Marketing Information Dissemination
As discussed above, resource servers, such as Internet websites for example, permit people to access a great deal of information. In addition to their function of providing resources to computer users, Internet sites provide a new conduit for disseminating marketing information to people. Often, marketing information is closely related to the resources requested. For example, an Internet resource providing stock quotations may include an advertisement for a stockbroker, or an Internet resource providing sports scores may include an advertisement for a baseball game to be televised. However, such marketing information is related to the characteristics of the Internet resource itself, not to the task being performed by the user requesting the resources. Thus methods and apparatus for providing marketing information relevant to a task being performed are needed.
[§] 1.2.3 Object (or Information) Representation
Computer users may use various types of applications and software services. The applications and software services, in turn, may use different types of stored objects (as information, data, or executable code). For example, some objects, such as relational database structures, XML (Extensible Markup Language), and RDF (Resource Description Framework), for example, may be characterized as “structured objects”. More specifically, relational databases are defined by elements structured into rows and columns of tables. XML defines trees based on containment relationships (e.g., an organization contains groups, and each of the groups contains members). Other objects, such as DCOM and JAVA runtime objects for example, may be characterized as “active objects”. Active objects may be objects that define methods and/or variables, in the object oriented language sense. Further, techniques are available (See, e.g., U.S. Pat. Nos. 5,740,439, 5,682,536, 5,689,703, and 5,581,760, each of which is incorporated herein by reference) to “expose” machine executable instructions as objects. Still other objects, such as text documents for example, may be characterized as “linear objects.” Some objects may have more that one type. For example, HTML (Hyper-Text Markup Language) documents may include linear text, and may include hyper-text links defining a hierarchical structure.
To reiterate, applications and application services are typically tailored to only those underlying object or information type(s) that are relevant to the particular application or application service. Unfortunately, it is not easy to implement inter-application services, such as analyzing tasks discussed above, which user various types of objects. Thus, a uniform representation of various types of objects (or information) would be useful.